home *** CD-ROM | disk | FTP | other *** search
/ Aminet 32 / Aminet 32 (1999)(Schatztruhe)[!][Aug 1999].iso / Aminet / util / libs / graphics3d.lha / develop / C / graphics3D_pubblic.h next >
Encoding:
C/C++ Source or Header  |  1999-01-23  |  3.9 KB  |  114 lines

  1. /*
  2. **      $VER: graphics3d.h 10.02 (02.03.98) 
  3. ** 
  4. **      main include file for graphics3d.library
  5. **
  6. **      (C) Copyright 1997 Patrizio Biancalani
  7. **      All Rights Reserved.
  8. */
  9.  
  10. #ifndef GRAPHICS3D_GRAPHICS3D_H
  11. #define GRAPHICS3D_GRAPHICS3D_H
  12.  
  13. #define JAM1 0
  14. #define JAM2 1
  15. #define COMPLEMENT 2
  16. #define INVERSVID 4
  17. #define PROSP_P 0    /* tipo proiezione prospettica */
  18. #define PARAL_P 1    /* tipo proiezione parallela */
  19. #define WIREF    0    /* modo visualizzazione in wire frame */
  20. #define SOLID    2    /* modo visualizzazione in solid */
  21. #define FLAT     1    /* modo visualizzazione in flat shading */
  22. #define GORAUD  3    /* modo visualizzazione in goraud shading */
  23. #define TMAP    0x10    /* modo visualizzazione in texture mapping */
  24. #define ZPLANE  0       /* #1 modo clippaggio oggetti */
  25. #define FRUSTUM 1       /* #2 modo clippaggio oggetti */
  26. #define FIXV    256    /* fattore moltipl. per num. virgola fissa */
  27. #define END_T  0    /* fine array tag3d di dati */
  28. #define TRASP  1000    /* valore registro colore che indica trasparente */
  29.  
  30. /* 
  31.   tipi dati per tag3d.tipo riconosciuti attualmente per 
  32.   funzione GD_cascene()
  33. */
  34. #define CS_PROJET 1    /* tipo di proiezione */
  35. #define CS_SBUFF  2     /* attivazione o meno single buffering */
  36. #define CS_GCOLOR 3    /* nuovo colore sfondo box di visualizzazione */
  37. #define CS_VDIST  4    /* nuovo valore distanza da piano di proiezione */
  38. #define CS_NPX0      5     /* nuova posizione X per box di visualizzazione */
  39. #define CS_NPY0   6     /* nuova posizione Y per box di visualizzazione */
  40. #define CS_ZOOM   7    /* nuovo valore per zoom scena */
  41. #define CS_ZBUF      8    /* attivazione o meno z-buffering */
  42. #define CS_VIEWP  9    /* ritorna posizione attuale camera */
  43. /*
  44.   tipi dati per tag3d.tipo riconosciuti attualmente per
  45.   funzione GD_genpalette()
  46. */
  47. #define GP_RCOL   1    /* set n# colori da riservare per altri usi */
  48. #define GP_NCOL   2    /* set n# colori base da usare */
  49. #define GP_NLIV      3    /* set n# livelli d'intensita' per ogni colore */
  50. #define GP_COL      4    /* set n# colore a cui associare i prossimi GP_HRBG e GP_LRGB */
  51. #define GP_HRGB   5    /* definisce i valori RGB massimi per un colore (def.15,15,15) */
  52. #define GP_LRGB   6    /* definisce i valori RGB minimi per un colore (def. 0,0,0) */
  53. #define GP_PALET  7    /* assegna uno specifico registro della palette al colore GP_COL */
  54. #define GP_INFO      8    /* restituisce il n# registro della palette del colore GP_COL */
  55. #define GP_TRASP  9     /* assegno colore trasparente ad ultimo e lo ignoro per i livelli */
  56. /*
  57.   tipi dati per tag3d.tipo riconosciuti attualmente per
  58.   funzione GD_modobj()
  59. */
  60. #define MO_STATE  1    /* attiva(1) o disattiva(0) l'oggetto attuale */
  61. #define MO_VMODE  2    /* setta il nuovo viewmode dell'oggetto attuale */
  62. /*
  63.   tipi dati per tag3d.tipo riconosciuti attualmente per
  64.   funzione GD_modpoly()
  65. */
  66. #define MP_POLY   1    /* set n# poligono su cui far operare le modifiche */
  67. #define MP_COLOR  2    /* modifica il colore del poligono */
  68. #define MP_2SIDE  3    /* setta a 2(1) o 1(0) faccia il poligono */
  69. #define MP_TMAP   4    /* assegna una texture map al poligono */
  70. #define MP_VTMAP  5    /* definisce i vertici della texture map del poligono */
  71. #define MP_VTAUTO 6    /* definisce i vertici automaticamente */
  72. #define MP_ACTIV  7    /* attiva(1) o disattiva(0) il poligono selezionato */
  73.  
  74. /** STRUTTURE DATI DI USO ESTERNO ED INTERNO **/
  75. /* vertice, usa formato float a virgola fissa ,(val*FIXV) */ 
  76. struct vertex
  77. {
  78. long int x;
  79. long int y;
  80. long int z;
  81. };
  82.  
  83. /* vertice su texture map (valori in pixel intero corto)*/
  84. struct vtmap
  85. {
  86. short int x1;
  87. short int y1;
  88. short int x2;
  89. short int y2;
  90. short int x3;
  91. short int y3;
  92. short int x4;
  93. short int y4;
  94. };
  95.  
  96. /* struttura per definizione colore */
  97. struct rgbtype
  98. {
  99. short int r;
  100. short int g;
  101. short int b;
  102. };
  103.  
  104. /* struttura tag3d per definire un array di valori estendibile */
  105. /* analogo alla struttura TagItem dell' Amiga O.S.             */
  106. struct tag3d
  107. {
  108. short unsigned int tipo;    /* flag che identifica valore 
  109.                         (se=0 fine array) */
  110. long int val;            /* valore effettivo */
  111. };         
  112.  
  113. #endif /* GRAPHICS3D_GRAPHICS3D_H */
  114.